// MANUALLY DUMPED [ShaderRegex\ShaderFixes\regex.ini\_Volumetric_Lighting]
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Sat Nov 30 23:48:01 2019
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0},
                              { 0, 1.000000, 0, 0},
                              { 0, 0, 1.000000, 0},
                              { 0, 0, 0, 1.000000} }
dcl_constantbuffer cb0[97], dynamicIndexed
dcl_constantbuffer cb1[204], immediateIndexed
dcl_constantbuffer cb2[36], dynamicIndexed
dcl_constantbuffer cb3[5], immediateIndexed
dcl_constantbuffer cb4[7], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_resource_texture3d (uint,uint,uint,uint) t0
dcl_resource_texture3d (float,float,float,float) t1
dcl_resource_texture3d (float,float,float,float) t2
dcl_resource_texture3d (float,float,float,float) t3
dcl_resource_texture3d (float,float,float,float) t4
dcl_resource_texture3d (float,float,float,float) t5
dcl_resource_texture3d (float,float,float,float) t6
dcl_resource_texture3d (float,float,float,float) t7
dcl_resource_texture3d (float,float,float,float) t8
dcl_resource_texture3d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture2d (float,float,float,float) t11
dcl_resource_buffer (float,float,float,float) t12
dcl_resource_buffer (uint,uint,uint,uint) t13
dcl_resource_buffer (uint,uint,uint,uint) t14
dcl_resource_texturecube (float,float,float,float) t15
dcl_resource_buffer (uint,uint,uint,uint) t16
dcl_resource_texture3d (float,float,float,float) t17
dcl_resource_texture3d (float,float,float,float) t18
dcl_resource_texture3d (float,float,float,float) t19
dcl_resource_texture3d (float,float,float,float) t20
dcl_resource_texture2d (float,float,float,float) t21
dcl_uav_typed_texture3d (float,float,float,float) u0
dcl_input vThreadID.xyz
dcl_temps 34
dcl_thread_group 4, 4, 4
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
utof r0.xyz, vThreadID.xyzx
add r1.xyz, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
div r1.xy, r1.xyxx, cb4[1].xyxx
mad r1.xy, r1.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
mul r1.xy, r1.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
div r0.w, r1.z, cb4[2].z
exp r0.w, r0.w
add r0.w, r0.w, -cb4[2].y
div r0.w, r0.w, cb4[2].x
lt r1.z, cb1[31].w, l(1.000000)
add r1.w, r0.w, cb1[65].w
mul r1.w, r1.w, cb1[65].z
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w
mad r0.w, r0.w, cb1[30].z, cb1[31].z
movc r0.w, r1.z, r1.w, r0.w
mul r2.xyzw, r1.yyyy, cb0[55].xyzw
mad r2.xyzw, r1.xxxx, cb0[54].xyzw, r2.xyzw
mad r2.xyzw, r0.wwww, cb0[56].xyzw, r2.xyzw
add r2.xyzw, r2.xyzw, cb0[57].xyzw
div r1.xyw, r2.xyxz, r2.wwww
add r1.xyw, r1.xyxw, -cb1[71].xyxz
mul r2.xyz, r1.yyyy, cb0[59].xywx
mad r2.xyz, r1.xxxx, cb0[58].xywx, r2.xyzx
mad r1.xyw, r1.wwww, cb0[60].xyxw, r2.xyxz
add r1.xyw, r1.xyxw, cb0[61].xyxw
div r1.xy, r1.xyxx, r1.wwww
mad r2.xy, r1.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
mad r0.w, r1.w, cb1[198].x, cb1[198].y
log r0.w, r0.w
mul r0.w, r0.w, cb1[198].z
mul r2.z, r0.w, cb1[197].z
lt r1.xyw, r2.xyxz, l(0.000000, 0.000000, 0.000000, 0.000000)
or r0.w, r1.y, r1.x
or r0.w, r1.w, r0.w
lt r1.xyw, l(1.000000, 1.000000, 0.000000, 1.000000), r2.xyxz
or r1.x, r1.y, r1.x
or r1.x, r1.w, r1.x
or r0.w, r0.w, r1.x
movc r0.w, r0.w, l(0), cb0[70].x
lt r1.x, r0.w, l(0.001000)
ult r3.xyz, vThreadID.xyzx, cb4[0].xyzx
and r1.y, r3.y, r3.x
and r1.y, r3.z, r1.y
and r1.x, r1.y, r1.x
movc r1.x, r1.x, cb0[87].x, l(1)
lt r1.w, l(0.000000), cb0[92].x
lt r3.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[96].yxzy
dp3 r2.w, cb2[5].xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
mul r4.xyz, r2.wwww, cb4[6].xyzx
movc r4.xyz, r3.yyyy, r4.xyzx, cb2[5].xyzx
mad r2.w, -cb0[87].y, cb0[87].y, l(1.000000)
mad r3.w, cb0[87].y, cb0[87].y, l(1.000000)
mul r4.w, cb0[87].y, l(-2.000000)
or r5.x, r1.w, r3.z
imul null, r5.yz, vThreadID.xxyx, cb4[3].zzwz
add r5.w, cb1[202].w, l(1.000000)
lt r6.x, l(0.000000), cb0[87].w
lt r6.y, l(0.000000), cb3[2].z
ld_indexable(buffer)(uint,uint,uint,uint) r7.x, l(0, 0, 0, 0), t16.xyzw
ld_indexable(buffer)(uint,uint,uint,uint) r7.y, l(1, 1, 1, 1), t16.yxzw
ld_indexable(buffer)(uint,uint,uint,uint) r7.z, l(2, 2, 2, 2), t16.yzxw
mul r6.z, cb0[96].z, l(0.318309873)
iadd r6.w, cb2[1].z, l(-1)
ushr r5.yz, r5.yyzy, cb2[2].xxxx
iadd r8.xyz, vThreadID.xyzx, l(1, 1, 1, 0)
utof r8.xyz, r8.xyzx
mov r9.w, l(0)
mov r10.x, cb1[153].x
mov r11.x, l(1.000000)
mul r12.xy, cb3[3].yxyy, l(1.000000, -1.000000, 0.000000, 0.000000)
mov r10.yzw, l(0,1.73205125,1.73205125,1.73205125)
mov r13.x, cb1[153].y
mov r13.yzw, l(0,1.73205125,1.73205125,1.73205125)
mov r14.x, cb1[153].z
mov r14.yzw, l(0,1.73205125,1.73205125,1.73205125)
mov r15.x, l(1.000000)
mov r16.xyz, l(0,0,0,0)
mov r7.w, cb2[0].z
mov r8.w, cb2[7].x
mov r12.z, cb2[30].y
mov r12.w, l(0)
loop
  uge r17.x, r12.w, r1.x
  breakc_nz r17.x
  add r17.xyz, r0.xyzx, cb0[r12.w + 71].xyzx
  div r17.xy, r17.xyxx, cb4[1].xyxx
  mad r17.xy, r17.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
  mul r17.xy, r17.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
  div r17.z, r17.z, cb4[2].z
  exp r17.z, r17.z
  add r17.z, r17.z, -cb4[2].y
  div r17.z, r17.z, cb4[2].x
  add r17.w, r17.z, cb1[65].w
  mul r17.w, r17.w, cb1[65].z
  div r17.w, l(1.000000, 1.000000, 1.000000, 1.000000), r17.w
  mad r18.x, r17.z, cb1[30].z, cb1[31].z
  movc r17.w, r1.z, r17.w, r18.x
  mul r18.xyzw, r17.yyyy, cb0[55].xyzw
  mad r18.xyzw, r17.xxxx, cb0[54].xyzw, r18.xyzw
  mad r18.xyzw, r17.wwww, cb0[56].xyzw, r18.xyzw
  add r18.xyzw, r18.xyzw, cb0[57].xyzw

// div r32.xyw, r18.xyxz, r18.wwww
// add r32.xyw, r32.xyxw, -cb1[71].xyxz
// add r33.xyz, r32.xywx, -cb1[68].xyzx

ld_indexable(texture2d)(float,float,float,float) r29.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r28.xyzw, l(0, 0, 0, 0), t120.xyzw
div r30.xyz, r18.xyzx, r18.wwww
mov r30.w, l(1.0)
mul r31.xyzw, r30.yyyy, cb1[1].xyzw
mad r31.xyzw, r30.xxxx, cb1[0].xyzw, r31.xyzw
mad r31.xyzw, r30.zzzz, cb1[2].xyzw, r31.xyzw
add r31.xyzw, r31.xyzw, cb1[3].xyzw
add r29.w, r31.w, -r29.y
// mul r29.w, r29.w, r28.w
mad r31.x, r29.w, -r29.x, r31.x
mul r30.xyzw, r31.yyyy, cb1[41].xyzw
mad r30.xyzw, r31.xxxx, cb1[40].xyzw, r30.xyzw
mad r30.xyzw, r31.zzzz, cb1[42].xyzw, r30.xyzw
mad r30.xyzw, r31.wwww, cb1[43].xyzw, r30.xyzw 
mov r17.xyw, r30.xyxz


  add r17.xyw, r17.xyxw, -cb1[71].xyxz
  add r18.xyz, r17.xywx, -cb1[68].xyzx
  dp3 r18.w, r18.xyzx, r18.xyzx
  sqrt r18.w, r18.w
  div r18.xyz, r18.xyzx, r18.wwww
  if_nz r7.w
    if_nz r3.x
      if_nz r12.z
        mul r19.xyzw, r17.yyyy, cb2[33].xyzw
        mad r19.xyzw, r17.xxxx, cb2[32].xyzw, r19.xyzw
        mad r19.xyzw, r17.wwww, cb2[34].xyzw, r19.xyzw
        add r19.xyzw, r19.xyzw, cb2[35].xyzw
        div r19.xy, r19.xyxx, r19.wwww
        ge r20.xy, r19.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
        ge r20.zw, l(0.000000, 0.000000, 1.000000, 1.000000), r19.xxxy
        and r20.xy, r20.zwzz, r20.xyxx
        and r19.w, r20.y, r20.x
        if_nz r19.w
          sample_l_indexable(texture2d)(float,float,float,float) r19.x, r19.xyxx, t11.xyzw, s2, l(0.000000)
          lt r19.y, r19.z, r19.x
          lt r19.x, l(0.990000), r19.x
          or r19.x, r19.x, r19.y
          and r19.x, r19.x, l(0x3f800000)
        else
          mov r19.x, l(1.000000)
        endif
      else
        mov r19.x, l(1.000000)
      endif
      if_nz r8.w
        mov r19.y, r8.w
        mov r19.z, l(0)
        loop
          uge r19.w, r19.z, r8.w
          breakc_nz r19.w
          dp4 r19.w, cb2[8].xyzw, icb[r19.z + 0].xyzw
          lt r19.w, r17.z, r19.w
          if_nz r19.w
            mov r19.y, r19.z
            break
          endif
          iadd r19.z, r19.z, l(1)
        endloop
        ult r19.z, r19.y, r8.w
        if_nz r19.z
          ishl r19.z, r19.y, l(2)
          mul r20.xyzw, r17.yyyy, cb2[r19.z + 10].xyzw
          mad r20.xyzw, r17.xxxx, cb2[r19.z + 9].xyzw, r20.xyzw
          mad r20.xyzw, r17.wwww, cb2[r19.z + 11].xyzw, r20.xyzw
          add r20.xyzw, r20.xyzw, cb2[r19.z + 12].xyzw
          div r19.zw, r20.xxxy, r20.wwww
          ge r20.xy, r19.zwzz, cb2[r19.y + 25].xyxx
          ge r21.xy, cb2[r19.y + 25].zwzz, r19.zwzz
          and r20.xy, r20.xyxx, r21.xyxx
          and r20.x, r20.y, r20.x
          if_nz r20.x
            sample_l_indexable(texture2d)(float,float,float,float) r19.z, r19.zwzz, t10.yzxw, s1, l(0.000000)
            add r19.z, r19.z, -cb2[30].x
            lt r19.z, r20.z, r19.z
            and r19.z, r19.z, l(0x3f800000)
          else
            mov r19.z, l(1.000000)
          endif
        else
          mov r19.z, l(1.000000)
        endif
      else
        mov r19.z, l(1.000000)
      endif
      mul r19.x, r19.z, r19.x
    else
      mov r19.x, l(1.000000)
    endif
    mul r19.zw, r17.yyyy, cb0[89].xxxy
    mad r19.zw, r17.xxxx, cb0[88].xxxy, r19.zzzw
    mad r19.zw, r17.wwww, cb0[90].xxxy, r19.zzzw
    add r19.zw, r19.zzzw, cb0[91].xxxy
    mad r20.xy, r19.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
    add r20.z, -r20.y, l(1.000000)
    sample_l_indexable(texture2d)(float,float,float,float) r19.z, r20.xzxx, t21.yzxw, s5, l(0.000000)
    mul r19.x, r19.z, r19.x
    mul r19.x, r19.x, cb2[5].w
    dp3 r19.z, cb2[4].xyzx, -r18.xyzx
    mad r19.z, -r4.w, r19.z, r3.w
    log r19.z, r19.z
    mul r19.z, r19.z, l(1.500000)
    exp r19.z, r19.z
    mul r19.z, r19.z, l(12.566371)
    div r19.z, r2.w, r19.z
    mul r19.x, r19.z, r19.x
    mad r19.xzw, r4.xxyz, r19.xxxx, r16.xxyz
  else
    mov r19.xzw, r16.xxyz
  endif
  mul r11.yzw, r18.yyzx, cb0[87].yyyy
  if_nz r5.x
    mad r20.xyz, r17.xywx, cb1[200].xyzx, cb1[201].xyzx
    max r20.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
    min r20.xyz, r20.xyzx, l(0.990000, 0.990000, 0.990000, 0.000000)
    mul r20.xyz, r20.xyzx, cb1[202].xyzx
    ftoi r9.xyz, r20.xyzx
    ld_indexable(texture3d)(uint,uint,uint,uint) r21.xyzw, r9.xyzw, t0.xyzw
    utof r21.xyzw, r21.xyzw
    div r9.xyz, r20.xyzx, r21.wwww
    frc r9.xyz, r9.xyzx
    mul r9.xyz, r9.xyzx, cb1[202].wwww
    mad r9.xyz, r21.xyzx, r5.wwww, r9.xyzx
    add r9.xyz, r9.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
    mul r9.xyz, r9.xyzx, cb1[203].xyzx
  else
    mov r9.xyz, l(0,0,0,0)
  endif
  if_nz r1.w
    if_nz r3.y
      if_nz r6.y
        mad_sat r18.w, r18.w, cb3[4].x, cb3[4].y
        dp2 r20.x, r18.xyxx, r12.xyxx
        dp2 r20.y, r18.xyxx, cb3[3].xyxx
        mov r20.z, r18.z
        sample_l_indexable(texturecube)(float,float,float,float) r21.xyz, r20.xyzx, t15.xyzw, s3, l(0.000000)
        sample_l_indexable(texturecube)(float,float,float,float) r20.xyz, r20.xyzx, t15.xyzw, s3, cb3[4].z
        add r21.xyz, -r20.xyzx, r21.xyzx
        mad r20.xyz, r18.wwww, r21.xyzx, r20.xyzx
        mul r20.xyz, r20.xyzx, cb3[1].xyzx
      else
        mov r20.xyz, cb3[1].xyzx
      endif
      mul r20.xyz, r20.xyzx, l(0.282094806, 0.282094806, 0.282094806, 0.000000)
      max r20.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
    else
      dp4 r21.x, cb0[93].xyzw, r11.xyzw
      dp4 r21.y, cb0[94].xyzw, r11.xyzw
      dp4 r21.z, cb0[95].xyzw, r11.xyzw
      max r21.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
      mul r21.xyz, r7.xyzx, r21.xyzx
      mul r20.xyz, r21.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
    endif
    if_nz r6.x
      sample_l_indexable(texture3d)(float,float,float,float) r18.w, r9.xyzx, t9.xyzw, s0, l(0.000000)
    else
      mov r18.w, l(1.000000)
    endif
    mul r18.w, r18.w, cb0[92].x
    mad r19.xzw, r18.wwww, r20.xxyz, r19.xxzw
  endif
  if_nz r3.z
    sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r9.xyzx, t1.xyzw, s0, l(0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r9.xyzx, t2.xyzw, s0, l(0.000000)
    mad r21.xyz, r21.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r9.xyzx, t3.xyzw, s0, l(0.000000)
    mad r22.xyz, r22.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r23.xyz, r9.xyzx, t4.xyzw, s0, l(0.000000)
    mad r23.xyz, r23.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
    mul r21.xyz, r20.xxxx, r21.xyzx
    mul r21.yzw, r21.xxyz, l(0.000000, 1.73205125, 1.73205125, 1.73205125)
    mul r22.xyz, r20.yyyy, r22.xyzx
    mul r22.yzw, r22.xxyz, l(0.000000, 1.73205125, 1.73205125, 1.73205125)
    mul r23.xyz, r20.zzzz, r23.xyzx
    mul r23.yzw, r23.xxyz, l(0.000000, 1.73205125, 1.73205125, 1.73205125)
    sample_l_indexable(texture3d)(float,float,float,float) r24.xyz, r9.xyzx, t5.xyzw, s0, l(0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r25.xyz, r9.xyzx, t6.xyzw, s0, l(0.000000)
    mad r25.xyz, r25.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r26.xyz, r9.xyzx, t7.xyzw, s0, l(0.000000)
    mad r26.xyz, r26.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r9.xyz, r9.xyzx, t8.xyzw, s0, l(0.000000)
    mad r9.xyz, r9.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
    mul r25.xyz, r24.xxxx, r25.xyzx
    mul r25.yzw, r25.xxyz, cb1[153].xxxx
    mul r26.xyz, r24.yyyy, r26.xyzx
    mul r26.yzw, r26.xxyz, cb1[153].yyyy
    mul r9.xyz, r24.zzzz, r9.xyzx
    mul r27.yzw, r9.xxyz, cb1[153].zzzz
    mov r25.x, r24.x
    mov r21.x, r20.x
    mad r21.xyzw, r25.xyzw, r10.xyzw, r21.xyzw
    mov r26.x, r24.y
    mov r22.x, r20.y
    mad r22.xyzw, r26.xyzw, r13.xyzw, r22.xyzw
    mov r27.x, r24.z
    mov r23.x, r20.z
    mad r20.xyzw, r27.xyzw, r14.xyzw, r23.xyzw
    mov r15.yzw, r11.yyzw
    dp4 r9.x, r21.xyzw, r15.xyzw
    dp4 r9.y, r22.xyzw, r15.xyzw
    dp4 r9.z, r20.xyzw, r15.xyzw
    max r9.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
    mad r19.xzw, r6.zzzz, r9.xxyz, r19.xxzw
  endif
  mad r9.x, r17.z, cb2[3].x, cb2[3].y
  log r9.x, r9.x
  mul r9.x, r9.x, cb2[3].z
  max r9.x, r9.x, l(0.000000)
  ftou r9.x, r9.x
  umin r9.x, r6.w, r9.x
  imad r9.x, r9.x, cb2[1].y, r5.z
  imad r9.x, r9.x, cb2[1].x, r5.y
  ishl r9.y, r9.x, l(1)
  ld_indexable(buffer)(uint,uint,uint,uint) r9.y, r9.yyyy, t13.yxzw
  umin r9.y, r9.y, cb2[0].x
  bfi r9.x, l(31), l(1), r9.x, l(1)
  ld_indexable(buffer)(uint,uint,uint,uint) r9.x, r9.xxxx, t13.xyzw
  add r11.yzw, r8.xxyz, cb0[r12.w + 71].xxyz
  div r11.yz, r11.yyzy, cb4[1].xxyx
  mad r11.yz, r11.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
  mul r11.yz, r11.yyzy, l(0.000000, 1.000000, -1.000000, 0.000000)
  div r9.z, r11.w, cb4[2].z
  exp r9.z, r9.z
  add r9.z, r9.z, -cb4[2].y
  div r9.z, r9.z, cb4[2].x
  add r11.w, r9.z, cb1[65].w
  mul r11.w, r11.w, cb1[65].z
  div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w
  mad r9.z, r9.z, cb1[30].z, cb1[31].z
  movc r9.z, r1.z, r11.w, r9.z
  mul r20.xyzw, r11.zzzz, cb0[55].xyzw
  mad r20.xyzw, r11.yyyy, cb0[54].xyzw, r20.xyzw
  mad r20.xyzw, r9.zzzz, cb0[56].xyzw, r20.xyzw
  add r20.xyzw, r20.xyzw, cb0[57].xyzw
  div r11.yzw, r20.xxyz, r20.wwww
  add r11.yzw, r11.yyzw, -cb1[71].xxyz
  add r11.yzw, -r11.yyzw, r17.xxyw
  dp3 r9.z, r11.yzwy, r11.yzwy
  sqrt r9.z, r9.z
  mul r9.z, r9.z, cb0[87].z
  max r9.z, r9.z, l(1.000000)
  mul r11.y, r9.z, r9.z
  mov r16.xyz, r19.xzwx
  mov r16.w, l(0)
  loop
    uge r11.z, r16.w, r9.y
    breakc_nz r11.z
    iadd r11.z, r9.x, r16.w
    ld_indexable(buffer)(uint,uint,uint,uint) r11.z, r11.zzzz, t14.yzxw
    imul null, r11.w, r11.z, l(9)
    imad r15.y, r11.z, l(9), l(3)
    ld_indexable(buffer)(float,float,float,float) r15.yzw, r15.yyyy, t12.zxyw
    ushr r17.z, r15.w, l(16)
    f16tof32 r17.z, r17.z
    lt r18.w, l(0.000000), r17.z
    if_nz r18.w
      ld_indexable(buffer)(float,float,float,float) r20.xyzw, r11.wwww, t12.xyzw
      imad r21.xyz, r11.zzzz, l(9, 9, 9, 0), l(1, 2, 4, 0)
      ld_indexable(buffer)(float,float,float,float) r22.xyzw, r21.xxxx, t12.xyzw
      ld_indexable(buffer)(float,float,float,float) r21.xyw, r21.yyyy, t12.xywz
      ld_indexable(buffer)(float,float,float,float) r23.xyz, r21.zzzz, t12.xyzw
      f16tof32 r11.z, r15.w
      eq r11.w, r22.w, l(0.000000)
      lt r15.w, l(-2.000000), r15.y
      add r20.xyz, -r17.xywx, r20.xyzx
      dp3 r18.w, r20.xyzx, r20.xyzx
      rsq r21.z, r18.w
      mul r24.xyz, r20.xyzx, r21.zzzz
      mul r21.z, |r20.w|, |r20.w|
      mul r18.w, r18.w, r21.z
      mad r18.w, -r18.w, r18.w, l(1.000000)
      max r18.w, r18.w, l(0.000000)
      mul r18.w, r18.w, r18.w
      mul r25.xyz, |r20.wwww|, r20.xyzx
      dp3 r20.w, r25.xyzx, r25.xyzx
      min r20.w, r20.w, l(1.000000)
      add r20.w, -r20.w, l(1.000000)
      log r20.w, r20.w
      mul r20.w, r20.w, r22.w
      exp r20.w, r20.w
      movc r18.w, r11.w, r18.w, r20.w
      dp3 r20.w, r24.xyzx, r21.xywx
      add r15.y, -r15.y, r20.w
      mul_sat r15.y, r15.z, r15.y
      mul r15.y, r15.y, r15.y
      mul r15.y, r15.y, r18.w
      movc r15.y, r15.w, r15.y, r18.w
      mul r15.z, r11.z, l(0.500000)
      mad r21.xyz, -r15.zzzz, r23.xyzx, r20.xyzx
      lt r11.z, l(0.000000), r11.z
      if_nz r11.z
        mad r20.xyz, r15.zzzz, r23.xyzx, r20.xyzx
        dp3 r11.z, r21.xyzx, r21.xyzx
        dp3 r15.z, r20.xyzx, r20.xyzx
        rsq r11.z, r11.z
        rsq r15.z, r15.z
        mul r11.z, r11.z, r15.z
        dp3 r15.z, r21.xyzx, r20.xyzx
        mul r15.z, r11.z, r15.z
        mad r15.z, r15.z, l(0.500000), l(0.500000)
        mad r15.z, r11.y, r11.z, r15.z
        div r11.z, r11.z, r15.z
      else
        dp3 r15.z, r21.xyzx, r21.xyzx
        mad r15.z, r9.z, r9.z, r15.z
        rcp r11.z, r15.z
      endif
      movc r11.z, r11.w, r11.z, l(1.000000)
      mul r11.z, r15.y, r11.z
      dp3 r11.w, r24.xyzx, -r18.xyzx
      mad r11.w, -r4.w, r11.w, r3.w
      log r11.w, r11.w
      mul r11.w, r11.w, l(1.500000)
      exp r11.w, r11.w
      mul r11.w, r11.w, l(12.566371)
      div r11.w, r2.w, r11.w
      mul r11.z, r11.z, r11.w
      mul r11.z, r17.z, r11.z
      mad r16.xyz, r22.xyzx, r11.zzzz, r16.xyzx
    endif
    iadd r16.w, r16.w, l(1)
  endloop
  iadd r12.w, r12.w, l(1)
endloop
utof r0.x, r1.x
div r0.xyz, r16.xyzx, r0.xxxx
mov r3.xyz, vThreadID.xyzx
mov r3.w, l(0)
ld_indexable(texture3d)(float,float,float,float) r1.xzw, r3.xyzw, t20.xwyz
add r0.xyz, r0.xyzx, r1.xzwx
ld_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzw, t17.xyzw
dp3 r1.x, r4.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
add r5.w, r1.x, r4.w
ld_indexable(texture3d)(float,float,float,float) r1.xzw, r3.xyzw, t18.xwyz
mad r5.xyz, r0.xyzx, r4.xyzx, r1.xzwx
lt r0.x, l(0.000000), r0.w
if_nz r0.x
  sample_l_indexable(texture3d)(float,float,float,float) r2.xyzw, r2.xyzx, t19.xyzw, s4, l(0.000000)
  add r2.xyzw, -r5.xyzw, r2.xyzw
  mad r5.xyzw, r0.wwww, r2.xyzw, r5.xyzw
endif
if_nz r1.y
  and r0.xyzw, r5.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
  ieq r0.xyzw, r0.xyzw, l(0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000)
  movc r0.xyzw, r0.xyzw, l(0,0,0,0), r5.xyzw
  store_uav_typed u0.xyzw, vThreadID.xyzz, r0.xyzw
endif
ret
// Approximately 0 instruction slots used
